package gjbsh.bangong.ds.service;

import java.util.List;
import java.util.UUID;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import gjbsh.bangong.ds.dao.权限用户角色Mapper;
import gjbsh.bangong.ds.model.权限用户角色;
import gjbsh.bangong.ds.model.权限用户角色Example;

/**
 * @author yaolongjun
 * @date   2020年5月21日 下午3:42:28
 */
@Service
public class 权限用户角色Service {
	
	@Autowired
	权限用户角色Mapper ddMapper;
	
	// 根据用户ID查询
	public List<权限用户角色> findByUserId(String ppUserId) {
		权限用户角色Example mmExample = new 权限用户角色Example();
		权限用户角色Example.Criteria criteria = mmExample.createCriteria();
		criteria.and用户idEqualTo(ppUserId);
		return ddMapper.selectByExample(mmExample);
	}
	
	// 新增
	public boolean add(权限用户角色 mmQuanxianyonghujuese) {
		return ddMapper.insert(mmQuanxianyonghujuese) == 1;
	}
	
	// 根据用户ID删除
	public boolean deleteByUserId(String ppUserId) {
		权限用户角色Example mmExample = new 权限用户角色Example();
		权限用户角色Example.Criteria criteria = mmExample.createCriteria();
		criteria.and用户idEqualTo(ppUserId);
		return ddMapper.deleteByExample(mmExample) > 0;
	}

	// 设置领导账号 
	@Transactional
	public boolean setAdminAccount(String ppUserId, int ppValue) {
		// 查询当前用户的权限_用户_角色
		List<权限用户角色> mmQuanxianyonghujueseList = findByUserId(ppUserId);
		if(mmQuanxianyonghujueseList.size() > 0) {
			// 删除权限_用户_角色
			if(!deleteByUserId(ppUserId)) {
				throw new RuntimeException("删除权限用户角色失败");
			}
		}
		
		权限用户角色 mmQuanxianyonghujuese = new 权限用户角色();
		mmQuanxianyonghujuese.set用户角色id(UUID.randomUUID().toString());
		mmQuanxianyonghujuese.set用户id(ppUserId);
		
		// 取消领导账号
		if(ppValue == 0) {
			mmQuanxianyonghujuese.set角色id("2");
		}else {
			//设置领导账号
			mmQuanxianyonghujuese.set角色id("7");
		}
		
		// 新增权限_用户_角色
		if(!add(mmQuanxianyonghujuese)) {
			throw new RuntimeException("新增权限_用户_角色失败");
		}
		
		return true;
	}


	

	
	
	

}
